package Persistencia;

import Entidades.EntArrendatario;
import java.sql.Connection;
//import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author maxtor
 */
public class DaoArrendatario {

    public List<EntArrendatario> ListarArrendatario(Connection con) {
        //usuario,clave, perfil, estado
        List<EntArrendatario> resul = new ArrayList<EntArrendatario>();
        //    c.setId("no existe");
        try {
            PreparedStatement p = con.prepareStatement(ArrendatarioSqlHelper.getAllArrendatario());
           // System.out.println(ArrendatarioSqlHelper.getAllArrendatario());
            ResultSet r = p.executeQuery();
            while (r.next()) {
                EntArrendatario c = new EntArrendatario();
                c.setApellido(r.getString("Apellido"));
                c.setEmail(r.getString("Email"));
                c.setNombre(r.getString("Nombre"));
                c.setNroDocumento(r.getString("NroDocumento"));
                c.setNroHijos(r.getString("NroHijos"));
                c.setProfesion(r.getString("Profesion"));
                c.setTelefonoCelular(r.getString("TelefonoCelular"));
                c.setTelefonoFijo(r.getString("TelefonoFijo"));
                resul.add(c);

            }
        } catch (Exception e) {
            e.printStackTrace();
            //    return c;

        } finally {
            try {
                con.close();
            } catch (Exception ex) {
            }

        }
        return resul;
    }

    public int crear(Connection c, EntArrendatario Arrendatario) {
        String sql = ArrendatarioSqlHelper.crear();
        int resultadoCrear = 0;
        try {
            PreparedStatement st = c.prepareStatement(sql);

            st.setString(1, Arrendatario.getNroDocumento());
            st.setString(2, Arrendatario.getNombre());
            st.setString(3, Arrendatario.getApellido());
            st.setString(4, Arrendatario.getEmail());
            st.setString(5, Arrendatario.getTelefonoFijo());
            st.setString(6, Arrendatario.getTelefonoCelular());
            st.setString(7, Arrendatario.getProfesion());
            st.setString(8, Arrendatario.getNroHijos());


            resultadoCrear = st.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                c.close();
            } catch (SQLException ex) {
                Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return resultadoCrear;
    }

     public int modificar(Connection c, EntArrendatario Arrendatario) {
     String sql = ArrendatarioSqlHelper.modificar();
     int resultadoModificar = 0;
     try {
     PreparedStatement st = c.prepareStatement(sql);
            
     st.setString(1, Arrendatario.getNombre());
     st.setString(2, Arrendatario.getApellido());
     st.setString(3, Arrendatario.getTelefonoFijo());
     st.setString(4, Arrendatario.getTelefonoCelular());
     st.setString(5, Arrendatario.getEmail());
     st.setString(6, Arrendatario.getProfesion());
     st.setString(7, Arrendatario.getNroHijos());
     st.setString(8, Arrendatario.getNroDocumento());

     resultadoModificar = st.executeUpdate();

     } catch (SQLException ex) {
     Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);
     } finally {
     try {
     c.close();
     } catch (SQLException ex) {
     Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);
     }
     }

     return resultadoModificar;
     }

     public EntArrendatario Buscar(Connection con,String NroDocumento) {
       EntArrendatario c = new EntArrendatario();
       // c.setNroDocumento("Este cliente no existe");
        try {
            PreparedStatement cl = con.prepareStatement(ArrendatarioSqlHelper.Buscar(NroDocumento));
            ResultSet r = cl.executeQuery();
            while (r.next()) {
               c.setNroDocumento(r.getString(1));
               c.setNombre(r.getString(2));
               c.setApellido(r.getString(3));
               c.setEmail(r.getString(4));
               c.setTelefonoFijo(r.getString(5));
               c.setTelefonoCelular(r.getString(6));
               c.setProfesion(r.getString(7));
               c.setNroHijos(r.getString(8));
               
            }
        } catch (Exception e) {
            e.printStackTrace();
            return c;

        } finally {
            try {
                con.close();
            } catch (Exception ex) {
            }

        }
        return c;
    }
     public int eliminar(Connection c, EntArrendatario Arrendatario) {
     String sql = ArrendatarioSqlHelper.eliminar();
     int resultadoEliminar = 0;
     try {
     PreparedStatement st = c.prepareStatement(sql);

     st.setString(1, Arrendatario.getNroDocumento());

     resultadoEliminar = st.executeUpdate();

     } catch (SQLException ex) {
     Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);

     } finally {
     try {
     c.close();
     } catch (SQLException ex) {
     Logger.getLogger(DaoArrendatario.class.getName()).log(Level.SEVERE, null, ex);
     }
     }

     return resultadoEliminar;
     }
}
